Many software applications employ graphical user interfaces that exhibit arrangements of windows containing user-readable data. Programmers have realized that such graphical user interfaces must have an ability to execute with a variety of display resolutions, font sizes or languages. It has been postulated that a software system that produces a graphical user interface provide at least the following support mechanisms: (1) a mechanism to place user interface objects on the screen independent of parameters such as display resolution, font size or language; (2) a mechanism to detect when a current user interface environment has changed and to adjust accordingly. Such an environment change may be, for example, a change in font size; (3) a mechanism that automatically recalculates sizes and positions of displayed objects, based on changes in environment; and (4) an ability to distribute available display space in a visually pleasing manner.
Prior art systems have attempted to solve the first mechanism by providing so called "dialog editors", such as that provided by OS/2 (available from the IBM Corporation). A dialog editor provides an ability to separate text of an application from the executable code. The dialog editor generates separate templates for handling differences in font, display resolution, and language. A typical solution is to design a window layout that contains sufficient space to handle as broad a range of conditions as possible and to restrict the software application program to that predefined range. Such a solution impacts the software industry's ability to support national languages, especially those with ideographic characters (due to the amount of additional code that must be written).
Other prior art systems require that the software programmer be cognizant of an environment change and adjust the window dimensions on an interactive basis. Examples of such prior art may be found in the following U.S. patents. U.S. Pat. No. 4,574,364 to Tabata et al. describes a window management system that provides commands which enable a user to vary the size and position of windows. U.S. Pat. No. 5,151,974 to Tani et al. describes a graphic data processing system wherein the size of a window is judged and, based on the detected size, graphic data of an appropriate "concept" level is displayed within the window. Thus, the larger the window, the more detailed the information that can be displayed therein and vice versa.
U.S. Pat. No. 5,001,697 to Torres describes a displayed window system which allows an operator to dynamically vary window size after an initial window has been displayed, e.g. by movement of a mouse. If the window size is decreased, the amount of decrease is calculated and a character set having appropriate width and height attributes is employed with the changed window size. U.S. Pat. No. 5,175,813 to Golding et al. describes a windowing system which presents logical windows as two separate parts. The first part includes the border and non-scrollable text and the second part includes scrollable text. The separate parts are displayed on the screen as a single window. U.S. Pat. No. 4,675,830 to Hawkins describes a method for producing scalable contour data which both stretches and/or compresses character contours to bring specified contour points into proper alignment with a preestablished grid.
A requirement for user interaction to enable a graphical interface to cope with a changed font, display resolution or language is to be avoided. This is especially important when products employing a graphical interface are marketed on a world-wide basis and experience a multiplicity of environments, depending upon the country of purchase.
Accordingly, it is an object of this invention to provide an improved method and system for control of a graphical user interface that automatically alters the interface in accordance with a changed environment.
It is another object of this invention to provide an improved method for control of a graphical user interface that automatically adjusts window size to accommodate changes in font size, resolution, or language.
It is a further object of this invention to provide an improved graphical user interface that alters a window presentation in accordance with environment changes, in a manner transparent to the application programmer.